package com.cxso.example.response.location;


import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.util.List;

/**
 * 运输行程服务 (承运车辆历史轨迹)-返回参数
 */
@Getter
@Setter
public class LocationVnoRouterPathResponse implements Serializable {

    @Schema(description = "路程总里程(千米)", example = "55")
    private String mileage;

    @Schema(description = "停车次数")
    private String parkSize;

    @Schema(description = "途经城市列表")
    private List<CityArrayDTO> cityArray;

    @Schema(description = "停车列表")
    private List<ParkArrayDTO> parkArray;

    @Schema(description = "轨迹列表")
    private List<TrackArrayDTO> trackArray;


    @Getter
    @Setter
    @Schema(description = "途经城市列表")
    public static class CityArrayDTO {

        @Schema(description = "城市名称", example = "500106")
        private String cityCode;

        @Schema(description = "城市名称", example = "1")
        private String cityName;

        @Schema(description = "进出城市时间", example = "1628486013000")
        private String vInOutTime;

        @Schema(description = "进出城市类型 1-进   2-出", example = "1")
        private String vInOutType;
    }

    @Getter
    @Setter
    @Schema(description = "停车列表")
    public static class ParkArrayDTO {

        @Schema(description = "停车地址", example = "重庆市渝北区铁家湾,东北方向,229.0米")
        private String parkAdr;

        @Schema(description = "停车开始时间", example = "1628477210000")
        private String parkBte;

        @Schema(description = "停车结束时间", example = "1628485611000")
        private String parkEte;

        @Schema(description = "纬度 格式：1/600000.0 (WGS84 坐标系)", example = "17855836")
        private String parkLat;

        @Schema(description = "经度 格式：1/600000.0 (WGS84 坐标系)", example = "64007815")
        private String parkLon;

        @Schema(description = "停车时长(分钟)", example = "30")
        private String parkMins;
    }

    @Getter
    @Setter
    @Schema(description = "轨迹列表")
    public static class TrackArrayDTO {
        @Schema(description = "上报里程(千米)", example = "123.0")
        private String mlg;

        @Schema(description = "正北方向夹角 0 或 360：正北，大于 0 且小于 90：东北，等于 90：正东，大于 90 且小于 180：东南，等于 180：正南，大于 180 且小于 270：西南，等于 270：正西，大于270 且小于等于 359：西北，9其他：未知", example = "270")
        private String agl;

        @Schema(description = "GPS时间 对应2021-08-09 10:46:50", example = "20210809/104650")
        private String gtm;

        @Schema(description = "海拔(米)", example = "326")
        private String hgt;

        @Schema(description = "纬度 格式：1/600000.0 (WGS84 坐标系)")
        private String lat;

        @Schema(description = "经度 格式：1/600000.0 (WGS84 坐标系)", example = "64007815")
        private String lon;

        @Schema(description = "GPS速度(千米/小时)", example = "54.3")
        private String spd;
    }
}
